package com.mingqijia.gassafety.shared.constant;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 信号情况
 * @author guoliang.lao
 * @version v1.0.1
 * @date 2022年02月23日
 */
@Getter
@RequiredArgsConstructor
public enum SignalEnum {
    LEVEL_5("极好",5),
    LEVEL_4("好",4),
    LEVEL_3("一般",3),
    LEVEL_2("差",2),
    LEVEL_1("极差",1),
    LEVEL_0("无效",0);

    private final String name;

    private final Integer level;

    /**
     * 根据信号值匹配信号级别
     * @param si 信号值
     * @return
     */
    public static SignalEnum parse(Integer si) {
        if (si == 99) {
            return SignalEnum.LEVEL_0;
        } else if (si >= 25) {
            return SignalEnum.LEVEL_5;
        } else if (si >= 20 && si <= 24) {
            return SignalEnum.LEVEL_4;
        } else if (si >= 15 && si <= 19) {
            return SignalEnum.LEVEL_3;
        } else if (si >= 10 && si <= 14) {
            return SignalEnum.LEVEL_2;
        }  else if (si >= 0 && si <= 9) {
            return SignalEnum.LEVEL_1;
        } else {
            return SignalEnum.LEVEL_0;
        }
    }

    public static String getName(Integer level) {
        if (level == null) {
            return null;
        }
        for (SignalEnum signalEnum : SignalEnum.values()) {
            if (signalEnum.level.equals(level)) {
                return signalEnum.name;
            }
        }
        return null;
    }
}
